TypeScript 型の変数、ジェネリクス
Partial<T>
requiredをoptionalにする
Required<T>
optionalをrequiredに
Pick<T, K extends keyof T>
Tから Kのみの型を取って、新しい型を作る
type BarAndQux = Pick<Foo, "bar" | "qux">; と | で複数項目選択する
Exclude<T, U>
一致しない(TがUに代入不可)型を返す、無い場合は never
Omit<T, k extends keyof any>
Tからkを除いた型を返すが....kはTに属してなくてもよい。
type Omit<T, K extends keyof any> = Pick<T, Exclude<keyof T, K>>;
と exclude => pickと適用とするには、頻度が多い?ので、作った?
Parameters<T>
関数の引数の型をタプルでくれる
ConstructParameters<T>
クラス?のコンストラクターの引数の型をタプルでくれる
ReturnType<T>
返り値の型をくれる。voidの時は void型
ThisType<T>
thisの型をくれる
Readonly<T>
readonly型にする
NonNullable<T>
unll, undefinedを型から取り除く
constructorの引数を自身のpartialにする constructor(init:Partial<Hoge>)
type PartialNation = Patial<Nation>
みたいにして、この場合なら、Nationの個々のプロパティがあるかもしれない PartialNation型を作成した。
Partial型を引数にとって、値があれば、、みたいな形